/** Draws a dot ground, or ground+ceiling, with same number of dots at each
    depth.
    Done by approximation, ensure number of areas is high enough to get a
    good approximation.

    DCN 27-06-2010
*/

#pragma once
#include "StimDot.h"
class CStimDotGround :
    public CStimDot
{
public:
    CStimDotGround(const bool& bAlsoCeiling_, const enum Stims::ObjType& eObjType_ = Stims::GLpoint);
    virtual ~CStimDotGround(void);

    // other
    virtual std::string GetName ();

    //// setters
    // stimulus category setters (e.g. lifetime)
    virtual bool&       SetEquatedCloud()               {return _bEquatedCloud;}    // Instead of ground, create cloud stimulus with on-screen speeds equated with the ground?

protected:
    double  ComputeSlice(const double& dDepth_,const int& nIdx_);
    void    SamplePoint(const double& dRadiusZ_, CMatrix<double>& mPoint_);
    bool    InsideFrustumDerived(const CMatrix<double>& mOriginPoint_);

    // stimulus category specifications
    bool                _bEquatedCloud;
};

